// DiceController.ts
const { ccclass, property } = cc._decorator;

@ccclass
export default class DiceController extends cc.Component {
    @property(cc.SpriteAtlas)
    spriteAtlas: cc.SpriteAtlas = null; // 关联你的SpriteAtlas

    @property(cc.Sprite)
    diceSprite: cc.Sprite = null; // 关联骰子的Sprite组件

    @property([cc.SpriteFrame])
    diceSides: cc.SpriteFrame[] = [];  // 手动定义diceSides数组

    private currentSide: number = 0;

    @property({
        name: "result", 
        type:cc.Label,
    })
    result: cc.Label = null

    onLoad() {
        // 初始化时设置为第一个面
        this.setDiceFace(0);
    }

    setDiceFace(side: number) {
        // 确保side在正确的范围内
        // if (side < 0 || side >= 6) {
        //     console.error("Invalid dice side:", side);
        //     return;
        // }
        // // 获取对应的SpriteFrame
        // const frameName = `tile_${side}`; // 假设plist中的命名是 dice_1, dice_2...
        // const spriteFrame = this.spriteAtlas.getSpriteFrame(frameName);
        // if (spriteFrame) {
        //     this.diceSprite.spriteFrame = spriteFrame;
        // }
        if (side < 0 || side >= this.diceSides.length) {
            console.error("Invalid dice side:", side);
            return;
        }
        this.diceSprite.spriteFrame = this.diceSides[side];
    }

    rollDice() {
        const randomSide = Math.floor(Math.random() * 6);
        this.result.string = "result:"+(randomSide+1).toString();
        this.setDiceFace(randomSide);
        this.animateDice();
    }

    animateDice() {
        cc.tween(this.node)
            .to(0.5, { angle: 360 }) // 旋转一圈
            .call(() => this.node.angle = 0) // 恢复到原始角度
            .start();
    }
}
